package com.westos.todo.service;

import java.util.ArrayList;
import java.util.List;
import com.westos.spring.util.ApplicationContextUtil;
import com.westos.spring.util.MySpringUtil;
import com.westos.todo.dao.TodoDao;
import com.westos.todo.entity.Todo;
import com.westos.todo.entity.TodoClass;
import com.westos.todo.page.TodoClassVO;

public class TodoServiceImpl implements TodoService{
	
	private TodoDao todoDao;
	
	public TodoServiceImpl() {
		MySpringUtil.getInstance();
		this.todoDao=ApplicationContextUtil.getApplicationContext().getBean("todoDao",TodoDao.class);
	}
	
	public TodoDao getTodoDao() {
		return todoDao;
	}

	public void setTodoDao(TodoDao todoDao) {
		this.todoDao = todoDao;
	}

	@Override
	public List<TodoClassVO> listtoclasses(Integer parentid) {
		List<TodoClassVO> result=new ArrayList<>();
		List<TodoClass> root=todoDao.listtodoclassByParentid(parentid);
		for(TodoClass tc:root){
			TodoClassVO todoClassVO=new TodoClassVO();
			todoClassVO.setTodoclass(tc);
			todoClassVO.setTodos(todoDao.listtodoByClassid(tc.getId()));
			todoClassVO.setTodoclassvoList(listtoclasses(tc.getId()));
			result.add(todoClassVO);
		}
		//System.out.println(result);
		return result;

	}

	@Override
	public boolean saveTodoClass(TodoClass todoClass) {
		int result=0;
		result=todoDao.saveTodoClass(todoClass);
		return result>0;
	}

	@Override
	public boolean saveTodo(Todo todo){
		int result=0;
		result=todoDao.saveTodo(todo);
		return result>0;
	}

	@Override
	public Boolean updateTodo(Integer id) {
		int result=0;
		result=todoDao.updateTodoState(id);
		return result>0;
	}

	@Override
	public boolean removeTodo(Integer id) {
		int result=0;
		result=todoDao.removeTodo(id);
		return result>0;
	}
	
}
